package com.snow.java.base.junit;

import java.time.Duration;
import java.time.Instant;
import java.util.stream.LongStream;

/**
 * @类名称：
 * @类描述：
 * @author: bingHeng
 * @Date 2019.04.07
 * @Version: 1.0
*/
public class MyStream5 {

    /**
     * 并行流与顺序流：
     *      并行流就是把一个内容分成多个数据块，并用不同的线程分别处理每个数据块的流
     * java 8中将并行进行了优化，我们可以很容易的对数据进行并行操作，Stream API可以声明性的通过parallel()与sequential()在并行流与顺序流之间切换
     */


    public static void main(String[] args) {
        // 计算数字的累加和进行测试
        Instant start = Instant.now();
        LongStream.rangeClosed(0, 10000000000L).parallel().reduce(0, Long::sum);
        Instant end = Instant.now();
        System.out.println("好费时间为：" + Duration.between(start, end).toMillis());
    }
}
